﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Services;
using YaAppoint.Response;

namespace YaAppoint.Appointments.ManualAppoints
{
    /// <summary>
    /// 手动预约服务
    /// </summary>
    [RemoteService(isEnabled:false)]
    public interface IManualAppointAppService : IApplicationService
    {
        Task<BackJson> GetApplyDepOptions();

        Task<BackJson> GetSelectedApplyFormList(List<Guid> idList);

        Task<BackJson> GetNoAppointmentApplyItemListAsync(string? number, Dictionary<string, object> userData);

        Task<BackJson> GetAppointedApplyItemListAsync(string? number, Dictionary<string, object> userData);

        Task<BackJson> CreatePool(NewPoolDto dto);

        Task<BackJson> GetDeviceList(Guid deviceTypeID);

        Task<BackJson> GetPoolList(PoolQueryDto dto);

        // 提交预约
        Task<BackJson> SubmitAppoint(List<SubmitAppointDto> examItemList);

        Task<BackJson> GetDateLimit(Guid  devicId);

        // 提交预约修改
        Task<BackJson> SubmitEdit(List<SubmitAppointDto> examItemList);

        // 取消预约
        Task<BackJson> Cancel(List<SubmitAppointDto> examItemList);
    }
}
